SIP Manipulation Syntax
This appendix describes the syntax to be used to define a SIP Condition. SIP Manipulation Rule parts are:
| ■ | SIP Condition group |
| ■ | Action Subject - as described at Subject |
| ■ | Action Type |
| ■ | Action Value |
| ■ | Description |
If the chosen action is 'Send By Web-Service' and web-service is also selected, a new line will open that will include the following fields:
| ● | Request Method |
| ● | Content-Type |
| ● | URL Suffix |
| ● | Body |
Action Type
The 'Action Type' field specifies the type of action you want to perform on the Action Subject by the Action Value. The following table describes the manipulation actions.
|
Action Type |
Description |
|||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
Add |
Add a new Action Subject with the Action Value |
|||||||||
|
Remove |
Deletes the Action Subject |
|||||||||
|
Modify |
Sets the Action Subject to Action Value |
|||||||||
|
Add Prefix |
Adds the Action Value to the beginning of the Action Subject |
|||||||||
|
Add Suffix |
Adds the Action Value to the end of the Action Subject |
|||||||||
|
Remove Prefix |
Remove Action Value from the beginning of the Action Subject |
|||||||||
|
Remove Suffix |
Remove Action Value from the end of the Action Subject |
|||||||||
|
Normalization |
Run Normalization group (Action Value) on the Action Subject |
|||||||||
|
Random From Pool |
|
|||||||||
|
Send By Web-Service |
Sends the configured HTTP Request via the selected Custom Web-Service. |
Action Value
Syntax
<Value>/Normalization group/Prefix Group/Custom Web-Service
Where:
Value - as described at Value.
The value should be empty for ‘Remove’ action.
The value should be a Normalization group for ‘Normalization’ action.
The value should be a Prefix Group for ‘Random From Pool’ action.
The value should be a 'Custom' Web-Service for 'Send By Web-Service' action.
The following table describes the possible manipulation actions per subject.
|
Action Subject |
Action Type |
|---|---|
|
Header.From |
Modify, Normalization |
|
Header.From.URL.User |
Modify, Add Prefix, Add Suffix, Remove Prefix, RemoveS uffix, Normalization, Random From Pool |
|
Header.From.URL.Host |
Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization |
|
Header.From.Name |
Add, remove, Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization |
|
Header.To |
|
|
Header.To.URL.User |
|
|
Http.Request.otherHeader |
Add, Remove, Modify |
|
Header.To.URL.Host |
|
|
Header.To.Name |
|
|
Header.P-Asserted-Identity |
Add, Remove, Modify, Normalization |
|
Header.P-Asserted-Identity.URL.User |
Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization, Random From Pool |
|
Header.P-Asserted-Identity.URL.Host |
Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization |
|
Header.P-Asserted-Identity.Name |
Add, Remove, Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization |
|
Header.P-Asserted-Identity.TelNumber |
Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization |
|
Header.P-Preferred-Identity |
Add, Remove, Modify, Normalization |
|
Header.P-Preferred-Identity.URL.User |
Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization, Random From Pool |
|
Header.P-Preferred-Identity.URL.Host |
Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization |
|
Header.P-Preferred-Identity.Name |
Add, Remove, Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization |
|
Header.Diversion |
Add, Remove, Modify, Normalization |
|
Header.Diversion.URL.User |
Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization, Random From Pool |
|
Header.Diversion.URL.Host |
Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization |
|
Header.Diversion.Name |
Add, Remove, Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization |
|
Header.Referred-By |
Add, Remove, Modify, Normalization |
|
Header.Referred-By.URL.User |
Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization, Random From Pool |
|
Header.Referred-By.URL.Host |
Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization |
|
Header.Referred-By.Name |
Add, Remove, Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization |
|
Header.Refer-To |
Add, Remove, Modify, Normalization |
|
Header.Refer-To.URL.User |
Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization, Random From Pool |
|
Header.Refer-To.URL.Host |
Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization |
|
Header.Refer-To.Name |
Add, Remove, Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization |
|
Header.History-Info |
Add, Remove, Modify, Normalization |
|
Header.Request-URI |
Modify, Normalization |
|
Header.Request-URI.URL.User |
Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization, Random From Pool |
|
Header.Request-URI.URL.Host |
Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization |
|
Header.otherHeader |
Add, Remove, Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization |
|
Tags.TAG_1 |
Add, Remove, Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization |
|
Tags.TAG_2 |
Add, Remove, Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization |
|
Tags.TAG_3 |
Add, Remove, Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization |
|
SourceUri.User |
Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization, Random From Pool |
|
SourceUri.Host |
Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization |
|
DestUri.User |
Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization, Random From Pool |
|
DestUri.Host |
Modify, Add Prefix, Add Suffix, Remove Prefix, Remove Suffix, Normalization |
The following headers cannot be changed:
| ● | Via |
| ● | Call-ID |
| ● | CSeq |
| ● | Contact |
For example, the action Modify action is not valid for "Header.Contact" subject.
The ARM GUI provides an auto completion wizard to configure the SIP Manipulation.
Auto Completion Manipulation
Example 1
The following SIP Manipulation Adds ‘1212’ as prefix to the Tel Number of P-Asserted-Identity header:
Tel Number
Example 2
The following SIP Manipulation runs a SIP Condition before manipulating the Dest URI User.
If Tag1 exists, its value will be stored in the Dest URI User.
Run Tag Condition Before Manipulation
Example 3
The following SIP Manipulation replaces the Source URI User with a random number from a Prefix Group (pool of numbers).
Pool
Example 4
The SIP Manipulation Group shown in the figure below:
| ■ | Prepares and sends the HTTP Request (uppermost section indicated in the figure below) |
| ● | Sends HTTP request with the 'sampleHttpHeader' taking SourceUri.User as the value of this header. |
| ● | Using 'custom_local' web service it sends a POST request, with the suffix and body shown in the figure below. |
| ■ | Uses the HTTP response (lowermost section indicated in the figure below) |
| ● | If there is a 'name' field in the response body (first-level JSON searching is currently supported), its value will be inserted to 'SourceUri.User' |
| ● | Using the regex executed in the condition 'c1', if there was a match, take the first group and put it inside 'SourceUri.Host' |
Example 5
The following SIP Manipulation runs a SIP Condition before creating new header called X_ SLXSCORE.
If Param.SecureLogix.Score exists, its value will be stored in the X_ SLXSCORE header.